//389. 找不同
//题目：给定两个字符串 s 和 t ，它们只包含小写字母。
//字符串 t 由字符串 s 随机重排，然后在随机位置添加一个字母。
//请找出在 t 中被添加的字母。
#include <string.h>

//法一
//思路：我们分别将两个数组的字符元素分别相加，将值保存在两个变量中
//用记录 t的值 - i的值，最后将相减的数字返回
//char findTheDifference(char* s, char* t) {
//    int i = 0, j = 0;
//    while (*s)
//    {
//        i += *s;
//        i++;
//    }
//    while (*t)
//    {
//        j += *t;
//        t++;
//    }
//
//    return j - i;
//}

//法二：位运算，异或（相同为0，相异为1）
//0与任何数异或都为任何数，相同的数异或为0
//本质与找单身狗数是一样的
char findTheDifference(char* s, char* t) {
    int ret = 0;
    for (int i = 0; i < strlen(s); i++)
    {
        ret ^= s[i];
    }
    for (int i = 0; i < strlen(t); i++)
    {
        ret ^= t[i];
    }
    return ret;
}